<?php

namespace Controller;

class UserController 
{
	//Parametrar: Instanser av klasserna Database & LoginHandler
	//Returnerar: HTML Sträng - Reg.Formulär för icke inloggade, Användarpanel för inloggade
	public function DoControll(\Model\Database $db, \Model\LoginHandler $lh)
	{
		$uv = new \View\UserView();
		$uh = new \Model\UserHandler($db, $lh);
		
		//Om användaren är utloggad..
		if($lh->IsLoggedIn() == FALSE)
		{
			//.. rendera ut registreringsformuläret	
			$ret = $uv->RenderHeader(\View\UserView::REGISTER_CTRL_HEADER);				
			$ret .= $uv->RenderRegForm();			
		
			//Om användaren försöker registrera sig..
			if($uv->TriedToRegister() == TRUE)
			{
				//..valideras de inskrivna uppgifterna.
				$validationArray = $uh->ValidateUserInfo(
								   $uv->GetUserName(),
								   $uv->GetPassword(),
							       $uv->GetRepeatedPassword());
					
				//Om valideringen retunerar fel retuneras dessa.
				if(empty($validationArray) == FALSE)
				{
					$ret .= $uv->RenderErrorArray($validationArray);
				}	
				//Om angivet namn är upptaget retuneras felmeddelande		
				else if($uh->UserDoesExist($uv->GetUserName()) == TRUE)
				{
					$ret .= $uv->RenderMessage(\View\UserView::ERROR_USER_EXISTS);
				}
				//Lägger till användaren till i databasen.
				else
				{
					$uh->AddUser($uv->GetUserName(), $uv->GetPassword());
					$ret .= $uv->RenderMessage(\View\UserView::USER_ADDED_SUCCESS);
				}								
			}		

			return $ret;
		}
		//Annars returneras en användarpanel
		else
		{
			return $uv->RenderUserPanelContent();	
		}
		
	}		
	
}

?>